package com.fire.eyes.service;

import com.fire.eyes.model.FireSupervisorModel;
import com.fire.eyes.validation.*;
import com.smartthing.rest.model.asset.LocationAsset;
import com.smartthing.rest.model.search.AssetSearchResults;
import com.smartthing.rest.model.search.DeviceAssignmentSearchResults;
import com.smartthing.spi.SmartThingException;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: IAssetService
 * @Description: TODO
 * @Author raoyuxing
 * @Date 2019/1/14 18:41
 */
public interface IAssetService {

    /**
     * 功能描述: 新增资产
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/18 9:58
     */
    LocationAsset addAsset(AddAssetDTO addAssetDTO) throws SmartThingException;

    /**
     * 功能描述: 获取资产列表
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/18 9:58
     */
    List getAssetList(SiteIdDTO siteIdDTO) throws SmartThingException;

    /**
     * 功能描述: 查询资产详情
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/18 9:58
     */
    LocationAsset getAssetDetail(AssetIdDTO assetIdDTO) throws SmartThingException;

    /**
     * 功能描述: 我管理的消防单位
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/19 15:48
     */
    List<FireSupervisorModel> getSupervisorListByUser(TokenDTO tokenDTO);

    /**
     * 功能描述: 我管理的消防单位详情
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/19 15:48
     */
    FireSupervisorModel getSupervisor(SuperiorsDTO superiorsDTO);

    /**
     * 功能描述: 根据sitetoken获取资产列表
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/21 14:20
     */
    List getAssetListBySiteId(SiteIdDTO siteIdDTO) throws SmartThingException ;
}
